// 全局变量id
var my_id;
// jquery入口
$(function () {
    $("#order-manage-update-form input[name='marryTime']").attr("id", "id_marry_time_update");
    $("#order-manage-create-form input[name='marryTime']").attr("id", "id_marry_time_create");
    $("input[name='marryTime']").attr('type', 'date');
    $('#all-search').click({flag: 'allpage'}, function (e) {
        SearchPage(e.data.flag)
    });
    $('#per_search').click({flag: 'perpage'}, function (e) {
        SearchPage(e.data.flag)
    });
    refresh();
    AddTextAreaStyle();
    AddReadOnly();
    AddClass2From();
    BindAjaxEvents2All();
    BindAjaxEvents2Person();
})

// 个人订单页面的事件绑定
function BindAjaxEvents2Person() {
    // 点击确认修改按钮触发ajax修改条目（个人订单）
    $("#order-manage-update").click(function () {
        OrderManageUpdateAjax(my_id) // 传入id进行修改
    })
    // Click UpdateButton to set value for UpdateModal (Also For allOrder page)
    $('.update>a').each(function () {
        // Executing SetUpdateModalValue function
        $(this).click(SetUpdateModalValue)
    })
    // Click CreateButton
    $('#create-button').click(function () {
        RemoveReadOnly();  // 移除readonly特性
        CreateOrderManageAjax();
    })
}

// 全部订单页面的事件绑定
function BindAjaxEvents2All() {
    // 点击修改按钮，修改条目的ajax（全部订单）
    $('#submit-update').click(function () {
        RemoveReadOnly();  // 移除readonly特性
        OrderManageUpdateAjax(my_id);  // 传入id进行ajax修改
    })
    $('.update button[class="btn btn-danger"]').each(function () {
        $(this).click(() => {
            // console.log($(this).data('order-id'));
            deleteOrder($(this).data('order-id'));
        })
    });
}

// 删除订单
function deleteOrder(order_id) {
    console.log(order_id);
    $.ajax({
        url: '/personal/allorder/delete/',
        method: 'POST',
        dataType: 'json',
        data: {orderId: order_id},
        success: function (res) {
            if (res.status) {
                alert(res.msg);
                window.location.reload();
            } else {
                alert(res.msg);
            }
        }
    })
}

// 订单管理创建的ajax
function CreateOrderManageAjax() {
    $.ajax({
        url: '/personal/order/manage/create/',
        type: 'POST',
        dataType: 'json',
        data: $('#order-manage-create-form').serialize(),
        success: function (res) {
            if (res.status) {
                alert('订单创建成功！');
                $('#myModal-create').modal('hide');
                window.location.reload();
            } else {
                console.log(res);
                $.each(res.errors, function (key, value) {
                    console.log(key, value);
                    $('#order-manage-create-form #id_' + key).next().text(value[0]);
                })
            }
        }
    })
}

// 模态框赋值（not ajax)
function SetUpdateModalValue() {
    const dataSet = $(this).data();  // 获取数据集
    let el;
    console.log(dataSet);
    my_id = dataSet['order_id'];  // 为订单id赋值
    $.each(dataSet, function (key, value) {
        if (key === "marry_time") el = $('#myModal-update input[id="id_marry_time_update"]');
        else if (key === "status") {
            $(`#myModal-update select[id="id_status"] option[value=${value}]`).attr("selected", true);
            el = undefined;  // 无需用到el，特殊情况
        } else el = $(`#myModal-update #id_${key}`);
        // 当且仅当el为真，not undefined || null
        if (el) el.val(value);
    })
}

// 修改订单管理表的ajax
function OrderManageUpdateAjax(id) {
    // 参数id为当前点击的那一条信息的id值
    // 打包数据
    const dataForm = {
        'orderId': id,
        'userId': $('#id_userId').val(),
        'phone': $('#id_phone').val(),
        'customer': $('#id_customer').val(),
        'c_phone': $('#id_c_phone').val(),
        'c_other': $('#id_c_other').val(),
        'prize': $('#id_prize').val(),
        'status': $('#id_status').val(),
        'note': $('#id_note').val(),
        'marryTime': $('#id_marry_time_update').val()
    };
    $.ajax({
        // 此地址为修改订单管理表
        url: '/personal/order/manage/update/',
        type: 'POST',
        dataType: 'json',
        data: dataForm,
        success: function (res) {
            if (res.status) {
                alert("订单修改成功！");
                // 隐藏模态框
                $('#myModal-update').modal('hide')  // 关闭模态框
                // 刷新页面
                window.location.reload();
            } else {
                alert('修改失败')
            }
        }
    })
}

// 搜索函数
function SearchPage(flag) {
    const key = $('select[name="title"]').val();
    const value = $('input[name="value"]').val();
    if (key !== '' && value !== '') {
        $.ajax({
            url: `/personal/search/result/?flag=${flag}&key=${key}&value=${value}`,
            type: 'GET',
            dataType: 'json',
            success: function (res) {
                if (res.status) {
                    location.reload();
                }else{alert('发生了某些错误，请刷新页面');}
            }
        })
    } else {
        alert('请填写搜索内容！');
    }
}

// 刷新查询页面
function refresh() {
    $('#refresh').click(function () {
        $.ajax({
            url: `/personal/search/result/`,  // 给予flag一个None值
            type: 'GET',
            dataType: 'json',
            success: function (res) {
                if (res.status) {
                    location.reload();
                }
            }
        })
    })
}

// 文本域添加样式
function AddTextAreaStyle() {
    $('#order-manage-create-form #id_note').addClass('text-area').attr('rows', '1');
    $('#order-manage-update-form #id_note').addClass('text-area').attr('rows', '1');
}

// 为userid添加禁止访问
function AddReadOnly() {
    $('#order-manage-create-form #id_userId').attr('disabled', 'true');
    $('#order-manage-update-form #id_userId').attr('disabled', 'true');
}

// 解除禁止访问
function RemoveReadOnly() {
    $('#order-manage-create-form #id_userId').removeAttr('disabled', 'false');
    $('#order-manage-update-form #id_userId').removeAttr('disabled', 'false');
}

// 为订单创建和订单修改添加样式
function AddClass2From() {
    $('#order-manage-update-form div').each(function () {
        $(this).addClass('my-order-div');
    })
    $('#order-manage-create-form div').each(function () {
        $(this).addClass('my-order-div');
    })
}
